{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9bab7efe-fbb0-4fcd-a06e-699565f0979a",
   "metadata": {},
   "source": [
    "# 实验9 基于CNN的图像识别"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1f3beb3-a2b1-42b6-a543-0246047997e7",
   "metadata": {},
   "source": [
    "### 加载MNIST数据集，并将其分为训练集、验证集，并对数据进行预处理。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ee2b0c49-bb77-4692-9da5-6a5a0b583ed5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set size: 10000\n",
      "Training set size: 60000\n",
      "Number of training samples: 48780\n",
      "Number of cross-validation samples: 5430\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "label_size = 18 # Label size\n",
    "ticklabel_size = 14 # Tick label size\n",
    "    \n",
    "# Define a transform to normalize the data\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor()\n",
    "])\n",
    "\n",
    "# Load test data from the MNIST\n",
    "testset = torchvision.datasets.MNIST(root='./Data', train=False, download=False, transform=transform)\n",
    "print(f\"Test set size: {len(testset)}\")\n",
    "\n",
    "# Load training data from the MNIST\n",
    "trainset = torchvision.datasets.MNIST(root='./Data', train=True, download=False, transform=transform)\n",
    "print(f\"Training set size: {len(trainset)}\")\n",
    "\n",
    "# Rate of trX and cvX\n",
    "tr_cv_rate = 0.9\n",
    "\n",
    "# Create a list to store indices for each class unique()\n",
    "class_indices = [[] for _ in range(10)]  # 10 classes in MNIST\n",
    "\n",
    "# Populate class_indices\n",
    "for idx, (_, label) in enumerate(trainset):\n",
    "    class_indices[label].append(idx)\n",
    "\n",
    "# Calculate the number of samples for each class in training and validation sets\n",
    "train_size_per_class = int(tr_cv_rate * min(len(indices) for indices in class_indices))\n",
    "val_size_per_class = min(len(indices) for indices in class_indices) - train_size_per_class\n",
    "\n",
    "# Create balanced train and validation sets\n",
    "train_indices = []\n",
    "val_indices = []\n",
    "for indices in class_indices:\n",
    "    train_indices.extend(indices[:train_size_per_class])\n",
    "    val_indices.extend(indices[train_size_per_class:train_size_per_class + val_size_per_class])\n",
    "\n",
    "# Create Subset datasets\n",
    "from torch.utils.data import Subset\n",
    "trX = Subset(trainset, train_indices)\n",
    "cvX = Subset(trainset, val_indices)\n",
    "\n",
    "print(f\"Number of training samples: {len(trX)}\")\n",
    "print(f\"Number of cross-validation samples: {len(cvX)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71d27b76-4705-4a16-b027-d7a5fcc0b195",
   "metadata": {},
   "source": [
    "### 构建DataLoaders，准备训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4b96c16c-005a-4064-b0e1-3e3941f6b437",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "image_channels is 1\n",
      "tensor([[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],\n",
      "        [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
      "        [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.]])\n"
     ]
    }
   ],
   "source": [
    "batch_size = 52 # Define training batch 1，\n",
    "\n",
    "def one_hot_collate(batch):\n",
    "    data = torch.stack([item[0] for item in batch])\n",
    "    labels = torch.tensor([item[1] for item in batch])\n",
    "    one_hot_labels = torch.zeros(labels.size(0), 10)  # 10 classes in MNIST 【0，1，0，0】\n",
    "    one_hot_labels.scatter_(1, labels.unsqueeze(1), 1)\n",
    "    return data, one_hot_labels\n",
    "\n",
    "trLoader = torch.utils.data.DataLoader(trX, batch_size=batch_size, shuffle=True, num_workers=0, collate_fn=one_hot_collate)\n",
    "cvLoader = torch.utils.data.DataLoader(cvX, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=one_hot_collate)\n",
    "teLoader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=one_hot_collate)\n",
    "\n",
    "# Get a batch of training data\n",
    "dataiter = iter(trLoader)\n",
    "data, labels = next(dataiter)\n",
    "\n",
    "image_channels = data[0].numpy().shape[0]\n",
    "print(f'image_channels is {image_channels}')\n",
    "print(labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ddaaeda2-4a87-493e-944d-08c094145446",
   "metadata": {},
   "source": [
    "## 定义并训练卷积神经网络"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08581780-8f8f-43ce-a7f8-23acd38f7e19",
   "metadata": {},
   "source": [
    "### 卷积层：2层, 卷积核大小：3x3\n",
    "### 隐藏层1：100个节点\n",
    "### 隐藏层2：50个节点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "97b06c4c-d064-4720-8c21-23470a2743f1",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CNN(\n",
      "  (conv1): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
      "  (pool1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
      "  (conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
      "  (pool2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
      "  (fc1): Linear(in_features=3136, out_features=100, bias=True)\n",
      "  (fc2): Linear(in_features=100, out_features=10, bias=True)\n",
      "  (softmax): Softmax(dim=1)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.optim as optim\n",
    "\n",
    "class CNN(nn.Module):\n",
    "    def __init__(self, image_channels, num_classes):\n",
    "        super(CNN, self).__init__()\n",
    "        \n",
    "        # First convolutional layer\n",
    "        self.conv1 = nn.Conv2d(in_channels=image_channels, out_channels=32, kernel_size=3, padding=1)\n",
    "        self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "        \n",
    "        # Second convolutional layer\n",
    "        self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)\n",
    "        self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)\n",
    "        \n",
    "        # Fully connected layers\n",
    "        self.fc1 = nn.Linear(64 * 7 * 7, 100)  # After two 2x2 max pools, 28x28 -> 7x7\n",
    "        self.fc2 = nn.Linear(100, num_classes)  # 10 classes output\n",
    "\n",
    "        # Softmax\n",
    "        self.softmax = nn.Softmax(dim=1)\n",
    "        \n",
    "    def forward(self, x):\n",
    "        # Remove the reshape operation and directly use x\n",
    "        x = F.relu(self.conv1(x))\n",
    "        x = self.pool1(x)\n",
    "        \n",
    "        # Second conv layer\n",
    "        x = F.relu(self.conv2(x))\n",
    "        x = self.pool2(x)\n",
    "        \n",
    "        # Flatten the output for the fully connected layers\n",
    "        x = x.view(-1, 64 * 7 * 7)\n",
    "        \n",
    "        # Fully connected layers\n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = self.fc2(x)\n",
    "        \n",
    "        # Softmax\n",
    "        x = self.softmax(x)\n",
    "        \n",
    "        return x\n",
    "\n",
    "# Initialize the model\n",
    "model = CNN(image_channels, 10)\n",
    "if torch.cuda.is_available():\n",
    "    model = model.cuda()\n",
    "\n",
    "# Display model architecture\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8f35b63f-0560-4446-aa1d-2da72046d53e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/35], Train Loss: 1.4754, CV Loss: 1.4774\n",
      "Epoch [2/35], Train Loss: 1.4733, CV Loss: 1.4790\n",
      "Epoch [3/35], Train Loss: 1.4720, CV Loss: 1.4754\n",
      "Epoch [4/35], Train Loss: 1.4716, CV Loss: 1.4745\n",
      "Epoch [5/35], Train Loss: 1.4699, CV Loss: 1.4763\n",
      "Epoch [6/35], Train Loss: 1.4693, CV Loss: 1.4753\n",
      "Epoch [7/35], Train Loss: 1.4690, CV Loss: 1.4736\n",
      "Epoch [8/35], Train Loss: 1.4684, CV Loss: 1.4777\n",
      "Epoch [9/35], Train Loss: 1.4680, CV Loss: 1.4766\n",
      "Epoch [10/35], Train Loss: 1.4668, CV Loss: 1.4753\n",
      "Epoch [11/35], Train Loss: 1.4675, CV Loss: 1.4762\n",
      "Epoch [12/35], Train Loss: 1.4670, CV Loss: 1.4800\n",
      "Epoch [13/35], Train Loss: 1.4665, CV Loss: 1.4779\n",
      "Epoch [14/35], Train Loss: 1.4665, CV Loss: 1.4739\n",
      "Epoch [15/35], Train Loss: 1.4663, CV Loss: 1.4773\n",
      "Epoch [16/35], Train Loss: 1.4661, CV Loss: 1.4791\n",
      "Epoch [17/35], Train Loss: 1.4656, CV Loss: 1.4736\n",
      "Epoch [18/35], Train Loss: 1.4656, CV Loss: 1.4727\n",
      "Epoch [19/35], Train Loss: 1.4665, CV Loss: 1.4748\n",
      "Epoch [20/35], Train Loss: 1.4674, CV Loss: 1.4737\n",
      "Epoch [21/35], Train Loss: 1.4647, CV Loss: 1.4737\n",
      "Epoch [22/35], Train Loss: 1.4651, CV Loss: 1.4738\n",
      "Epoch [23/35], Train Loss: 1.4652, CV Loss: 1.4731\n",
      "Epoch [24/35], Train Loss: 1.4648, CV Loss: 1.4732\n",
      "Epoch [25/35], Train Loss: 1.4649, CV Loss: 1.4745\n",
      "Epoch [26/35], Train Loss: 1.4645, CV Loss: 1.4738\n",
      "Epoch [27/35], Train Loss: 1.4648, CV Loss: 1.4743\n",
      "Epoch [28/35], Train Loss: 1.4647, CV Loss: 1.4754\n",
      "Epoch [29/35], Train Loss: 1.4653, CV Loss: 1.4719\n",
      "Epoch [30/35], Train Loss: 1.4642, CV Loss: 1.4739\n",
      "Epoch [31/35], Train Loss: 1.4646, CV Loss: 1.4753\n",
      "Epoch [32/35], Train Loss: 1.4651, CV Loss: 1.4719\n",
      "Epoch [33/35], Train Loss: 1.4644, CV Loss: 1.4763\n",
      "Epoch [34/35], Train Loss: 1.4647, CV Loss: 1.4753\n",
      "Epoch [35/35], Train Loss: 1.4644, CV Loss: 1.4736\n"
     ]
    }
   ],
   "source": [
    "# Define loss function and optimizer\n",
    "criterion = nn.CrossEntropyLoss() # Loss\n",
    "optimizer = torch.optim.Adam(model.parameters()) # Adam\n",
    "\n",
    "# Lists to store losses\n",
    "train_losses = []\n",
    "cv_losses = []\n",
    "\n",
    "# Number of epochs\n",
    "num_epochs = 35\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    batch_losses = []\n",
    "    \n",
    "    for batch_x, batch_y in trLoader:\n",
    "        # Forward pass\n",
    "        outputs = model(batch_x)\n",
    "        loss = criterion(outputs, batch_y)\n",
    "        \n",
    "        # Backward pass and optimize\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        batch_losses.append(loss.item())\n",
    "    \n",
    "    # Calculate average training loss for this epoch\n",
    "    avg_train_loss = sum(batch_losses) / len(batch_losses)\n",
    "    train_losses.append(avg_train_loss)\n",
    "    \n",
    "    # Evaluate on cross-validation set\n",
    "    model.eval()\n",
    "    cv_batch_losses = []\n",
    "    with torch.no_grad():\n",
    "        for cv_x, cv_y in cvLoader:\n",
    "            cv_outputs = model(cv_x)\n",
    "            cv_loss = criterion(cv_outputs, cv_y)\n",
    "            cv_batch_losses.append(cv_loss.item())\n",
    "    \n",
    "    avg_cv_loss = sum(cv_batch_losses) / len(cv_batch_losses)\n",
    "    cv_losses.append(avg_cv_loss)\n",
    "    \n",
    "    print(f'Epoch [{epoch+1}/{num_epochs}], Train Loss: {avg_train_loss:.4f}, CV Loss: {avg_cv_loss:.4f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8e32d695-2630-4f5c-85c2-f3e3b029ea18",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy on training set: 99.78%\n",
      "Accuracy on cross-validation set: 98.75%\n"
     ]
    },
    {
     "data": {
      "image/png": "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b1KU35H8xOLl5cWDDz6Y7X5TbKZYWrRoAcBDDz3EkiVLiImJyXGuli1bsnfvXp544gmWL1/O9evXixyfEKJ4kARMCCEKoXz58jnui4uLo3379mzfvp0333yTdevWsXPnTn755ReA2zaCMPH3989xn5ubW76O9fT0xN3dPcexiYmJ5s8vX75MuXLlchyb2325+eijj3j88cdp1aoVP//8M9u2bWPnzp1079491xhvfT6mUjLTvpcvXwYgKCgox7G53Xcr0wvxiIiIfMVvcuv3zxRHbt/XChUqmB83GAysXr2ae+65h/fee4+mTZsSEBDAU089xY0bNwBVardq1SoCAwMZN24c1apVo1q1atnm/nTp0gUXFxfzzZRcGQwGHnnkEfbv38+uXbsAVX5YpUoVOnXqBFjm5+zW557b9z+3r//gwYP5/PPPGT16NMuXL2fHjh3s3LmTgICAAl836/WNRmO2kktQX4ugoCDz196kKL8j+YklKCgox/zMwMBAjEajOZYOHTqwdOlSUlNTGT58OJUqVaJ+/fosXLjQfMykSZP44IMP2LZtGz169MDf358uXbqYv69CiJJL5oAJIUQh5LaG15o1azhz5gzr1q0zj0YAdjXnw9/fnx07duS4P7eGC7n5/vvvCQsLY8aMGdnuNyUfhYknr+vnJ6ZOnTrh4uLC0qVLGTt2bL6ve+v3zxTH2bNnc+x75swZypYta/48NDSU2bNnA3D06FGWLFnClClTSE5OZubMmQC0b9+e9u3bk5aWxq5du/jss8945plnKFeuHAMHDuSrr77K9jXLev6RI0fy2muvMWfOHFxcXNizZw9vvPGGOWZL/5zl92ciNjaWP//8k8mTJ2dbrywpKck8N7Cw109NTc0x703TNM6dO2cebbIFf39/tm/fjqZp2X5GLly4QGpqarbvU58+fejTpw9JSUls27aNadOmMXjwYCpXrkzr1q0xGo1MmDCBCRMmcO3aNVatWsVLL73EPffcQ3R0dIG6pgohihcZARNCCAsxvWDL2jAA4KuvvtIjnFx17NiRGzdu8M8//2S7f9GiRfk63mAw5Hh++/bty7F+Wn7VqlWL8uXLs3DhQjRNM98fGRnJli1b7nh8UFCQeTQmr86JJ06cYN++fbc9T+vWrfHw8OD777/Pdv/p06dZs2YNXbp0yfW4mjVr8sorr9CgQQN2796d43FnZ2datWrFF198AWDep1atWjRv3tx8y9oVsEKFCnTv3p2FCxfyxRdf4OTkxIgRI8yPW/rnrFOnTty4cYPff/892/0//PBDts8NBgOapuW47jfffENaWlq2+24d6bwd09f21q/9zz//THx8fJ5fe2vo0qULcXFxLF26NNv9pp+t3GJxc3OjY8eOvPvuuwDs2bMnxz6lS5fmwQcfZNy4cVy5ciXXBaqFECWHjIAJIYSFtGnThjJlyjB27FgmT56Mi4sLCxYsYO/evXqHZjZixAg+/vhjhg4dyptvvkn16tX5559/WL58OcAduw7ee++9vPHGG0yePJmOHTty5MgRXn/9dapUqUJqamqB43FycuKNN95g9OjR3H///Tz66KNcu3aNKVOm5KsEEVRZ5MmTJxk5ciTLly/n/vvvp1y5cly6dImVK1cyd+5cFi1aZJ5/lpvSpUvz6quv8tJLLzF8+HAGDRrE5cuXmTp1Ku7u7kyePBlQyeb48ePp378/NWrUwNXVlTVr1rBv3z7zqNDMmTNZs2YNvXr1IiQkhMTERHOb9K5du+brOY0aNYq//vrL3GI/ODjY/Jilf86GDx/Oxx9/zPDhw3nrrbeoUaMGf//9t/lnwsTHx4cOHTrw/vvvU7ZsWSpXrsz69euZPXs2pUuXzrZv/fr1AZg1axbe3t64u7tTpUqVXMsH7777bu655x5efPFFrl+/Ttu2bc1dEJs0acKwYcMK9bzycuLECX766acc99etW5fhw4fzxRdfMGLECE6dOkWDBg3YtGkTb7/9Nj179jR//1577TVOnz5Nly5dqFSpEteuXeOTTz7JNhevd+/e1K9fn+bNmxMQEEBkZCTTp08nNDTU3FFTCFFC6dsDRAgh7FteXRDr1auX6/5btmzRWrdurXl6emoBAQHa6NGjtd27d+foJpdXF8RevXrlOOetXevy6oJ4a5x5XScqKkp74IEHtFKlSmne3t5av379tL///jvXTni3SkpK0p5//nmtYsWKmru7u9a0aVNt6dKlOTrbmbogvv/++znOAWiTJ0/Odt8333yj1ahRQ3N1ddVq1qypzZkzJ8c5byc1NVX79ttvtc6dO2t+fn6a0WjUAgICtB49emg//PCDlpaWpmla5tfuxx9/zPU833zzjdawYUPN1dVV8/X11fr06aP9999/5sfPnz+vjRw5Uqtdu7bm5eWllSpVSmvYsKH28ccfm7s9bt26Vbv//vu10NBQzc3NTfP399c6duyo/f777/l6LpqmacnJyVq5cuVy7cinaUX7Obv150nTNO306dNav379sv1MbNmyJcf5TPuVKVNG8/b21rp3764dOHBACw0N1UaMGJHtnNOnT9eqVKmiOTs7ZztPbt/Xmzdvai+++KIWGhqqubi4aOXLl9cef/xx7erVq9n2y+/vSF6APG+mn8nLly9rY8eO1cqXL68ZjUYtNDRUmzRpkpaYmGg+z59//qn16NFDq1ixoubq6qoFBgZqPXv21DZu3Gje58MPP9TatGmjlS1bVnN1ddVCQkK0UaNGaadOnbpjnEKI4s2gaVlqPoQQQpRIb7/9Nq+88gpRUVFUqlRJ73CEEEKIYktKEIUQooT5/PPPAahduzYpKSmsWbOGTz/9lKFDh0ryJYQQQliZJGBCCFHCeHp68vHHH3Pq1CmSkpIICQnhxRdf5JVXXtE7NCGEEKLYkxJEIYQQQgghhLARaUMvhBBCCCGEEDYiCZgQQgghhBBC2IgkYEIIIYQQQghhI9KEo5DS09M5c+YM3t7eGAwGvcMRQgghhBBC6ETTNG7cuEGFChVwcrr9GJckYIV05swZgoOD9Q5DCCGEEEIIYSeio6PvuKSLJGCF5O3tDagvso+Pj87RCCGEEEIIIfRy/fp1goODzTnC7UgCVkimskMfHx9JwIQQQgghhBD5mpokTTiEEEIIIYQQwkYkARNCCCGEEEIIG5EETAghhBBCCCFsROaACSGEEEKIO0pLSyMlJUXvMITQhbOzM0aj0SLLT0kCJoQQQgghbisuLo7Tp0+jaZreoQihG09PT8qXL4+rq2uRziMJmBBCCCGEyFNaWhqnT5/G09OTgIAAi4wACOFINE0jOTmZixcvEhERQY0aNe642PLtSAImhBBCCCHylJKSgqZpBAQE4OHhoXc4QujCw8MDFxcXIiMjSU5Oxt3dvdDnkiYcQgghhBDijmTkS5R0RRn1ynYei5xFCCGEEEIIIcQdSQImhBBCCCGEEDYiCZgQQgghhBD5EBYWxjPPPJPv/U+dOoXBYCA8PNxqMQnHo2sCtmHDBnr37k2FChUwGAwsXbo038du3rwZo9FI48aNczw2ffp0atWqhYeHB8HBwTz77LMkJiZm2+fLL7+kSpUquLu706xZMzZu3FjEZyOEEEIIIeyBwWC47W3kyJGFOu8vv/zCG2+8ke/9g4ODOXv2LPXr1y/U9fJLEj3HomsXxPj4eBo1asTDDz9Mv3798n1cbGwsw4cPp0uXLpw/fz7bYwsWLGDixInMmTOHNm3acPToUfMv2ccffwzA4sWLeeaZZ/jyyy9p27YtX331FT169ODgwYOEhIRY7PkJIYQQQgjbO3v2rHl78eLFvPbaaxw5csR8363dHFNSUnBxcbnjef38/AoUh7OzM0FBQQU6RhR/uo6A9ejRgzfffJMHHnigQMeNGTOGwYMH07p16xyPbd26lbZt2zJ48GAqV65Mt27dGDRoELt27TLv89FHHzFq1ChGjx5NnTp1mD59OsHBwcyYMSPPayYlJXH9+vVsNyGEyOHwX7BwEFw/e+d9hRDCAWmaRkJyqi63/C4EHRQUZL75+vpiMBjMnycmJlK6dGmWLFlCWFgY7u7ufP/991y+fJlBgwZRqVIlPD09adCgAQsXLsx23ltLECtXrszbb7/NI488gre3NyEhIcyaNcv8+K0jU+vWrcNgMLB69WqaN2+Op6cnbdq0yZYcArz55psEBgbi7e3N6NGjmThxYq5VX/mVlJTEU089RWBgIO7u7rRr146dO3eaH7969SpDhgwxLzVQo0YN5s6dC0BycjLjx4+nfPnyuLu7U7lyZaZNm1boWIQDrgM2d+5cTpw4wffff8+bb76Z4/F27drx/fffs2PHDlq2bMnJkyf5+++/GTFiBKB+iP79918mTpyY7bhu3bqxZcuWPK87bdo0pk6datknI4Qofta8CRcOgk9F6PWB3tEIIYTF3UxJo+5ry3W59sHX78HT1TIvX1988UU+/PBD5s6di5ubG4mJiTRr1owXX3wRHx8f/vrrL4YNG0bVqlVp1apVnuf58MMPeeONN3jppZf46aefePzxx+nQoQO1a9fO85iXX36ZDz/8kICAAMaOHcsjjzzC5s2bAVXN9dZbb5krtRYtWsSHH35IlSpVCv1c//e///Hzzz/z7bffEhoaynvvvcc999zD8ePH8fPz49VXX+XgwYP8888/lC1bluPHj3Pz5k0APv30U37//XeWLFlCSEgI0dHRREdHFzoW4WAJ2LFjx5g4cSIbN27EaMw99IEDB3Lx4kXatWuHpmmkpqby+OOPmxOuS5cukZaWRrly5bIdV65cOc6dO5fntSdNmsSECRPMn1+/fp3g4GALPCshRLERf1klXwDhP0DnV8CjtK4hCSGEyN0zzzyTowrr+eefN28/+eSTLFu2jB9//PG2CVjPnj154oknAJXUffzxx6xbt+62Cdhbb71Fx44dAZg4cSK9evUiMTERd3d3PvvsM0aNGsXDDz8MwGuvvcaKFSuIi4sr1POMj49nxowZzJs3jx49egDw9ddfs3LlSmbPns0LL7xAVFQUTZo0oXnz5oAa2TOJioqiRo0atGvXDoPBQGhoaKHiEJkcJgFLS0tj8ODBTJ06lZo1a+a537p168zvGrRq1Yrjx4/z9NNPU758eV599VXzfrcuJqhp2m0XGHRzc8PNza3oT0QIUXxFbs7cTomHPd9Bmyf1i0cIIazAw8WZg6/fo9u1LcWUbJikpaXxzjvvsHjxYmJiYkhKSiIpKQkvL6/bnqdhw4bmbVOp44ULF/J9TPny5QG4cOECISEhHDlyxJzQmbRs2ZI1a9bk63nd6sSJE6SkpNC2bVvzfS4uLrRs2ZJDhw4B8Pjjj9OvXz92795Nt27d6Nu3L23atAFg5MiR3H333dSqVYvu3btz77330q1bt0LFIhSHScBu3LjBrl272LNnD+PHjwcgPT0dTdMwGo2sWLGCzp078+qrrzJs2DBGjx4NQIMGDYiPj+exxx7j5ZdfpmzZsjg7O+cY7bpw4UKOUTEhhCgQUwJWqhzEnYfts6DV4+DsMH9qhRDijgwGg8XKAPV0a2L14Ycf8vHHHzN9+nQaNGiAl5cXzzzzDMnJybc9z63NOwwGA+np6fk+xjQAkPWY3AYKCst07O0GH3r06EFkZCR//fUXq1atokuXLowbN44PPviApk2bEhERwT///MOqVat46KGH6Nq1Kz/99FOhYyrpHGYdMB8fH/bv3094eLj5NnbsWGrVqkV4eLh5aDghIQEnp+xPy9nZGU3T0DQNV1dXmjVrxsqVK7Pts3LlSnOmL4QQhXIqIwHrOgU8/CA2Co78rWtIQggh8mfjxo306dOHoUOH0qhRI6pWrcqxY8dsHketWrXYsWNHtvuyNpMrqOrVq+Pq6sqmTZvM96WkpLBr1y7q1Kljvi8gIICRI0fy/fffM3369GzNRHx8fBgwYABff/01ixcv5ueff+bKlSuFjqmk0/Xti7i4OI4fP27+PCIigvDwcPz8/AgJCWHSpEnExMQwf/58nJyccqyhYOrkkvX+3r1789FHH9GkSRNzCeKrr77Kfffdh7OzGraeMGECw4YNo3nz5rRu3ZpZs2YRFRXF2LFjbfPEhRDFz82rcP6A2q7WBZodg00fwfaZUPc+fWMTQghxR9WrV+fnn39my5YtlClTho8++ohz585lS1Js4cknn+TRRx+lefPmtGnThsWLF7Nv3z6qVq16x2Nv7aYIULduXR5//HFeeOEF82vs9957j4SEBEaNGgWoeWbNmjWjXr16JCUl8eeff5qf98cff0z58uVp3LgxTk5O/PjjjwQFBVG6dGmLPu+SRNcEbNeuXXTq1Mn8uanJxYgRI5g3bx5nz54lKiqqQOd85ZVXMBgMvPLKK8TExBAQEEDv3r156623zPsMGDCAy5cv8/rrr5sXx/v7779lUqEQovAitwIa+NcA73LQYjRs+VSVJZ7dC+Ub6R2hEEKI23j11VeJiIjgnnvuwdPTk8cee4y+ffsSGxtr0ziGDBnCyZMnef7550lMTOShhx5i5MiROUbFcjNw4MAc90VERPDOO++Qnp7OsGHDuHHjBs2bN2f58uWUKVMGAFdXVyZNmsSpU6fw8PCgffv2LFq0CIBSpUrx7rvvcuzYMZydnWnRogV///13joozkX8GrShFpSXY9evX8fX1JTY2Fh8fH73DEULobfnLsPVzaDYSen+i7vvpETjwMzQaDPfnvc6gEELYs8TERCIiIqhSpQru7u56h1Mi3X333QQFBfHdd9/pHUqJdrvfhYLkBpK6CiGEJZzKqK0PbZd5310ZXawO/ARxt++IJYQQQoDqZ/DRRx/x33//cfjwYSZPnsyqVavMa9oKxycJmBBCFFViLJzbp7YrZ7b5pVJzqNgc0pJh1xx9YhNCCOFQDAYDf//9N+3bt6dZs2b88ccf/Pzzz3Tt2lXv0ISFOH4PUSGE0FvUNtDSwa8q+FTI/thdj8PPo2DnbGj3LBhlPUEhhBB58/DwYNWqVXqHIaxIRsCEEKKozOWHbXM+VrcPeJeH+Atw4BfbxiWEEEIIuyMJmBBCFJVpAebK7XI+5uyiOiICbJ8B0vdICCGEKNEkARNCiKJIugFnwtV2biNgAM0eBqO7akcftc1moQkhhBDC/kgCJoQQRRG9HbQ0KB0CpYNz38fLHxo+pLa3fWm72IQQQghhdyQBE0KIojDN/6rc/vb7tRqrPh7+E64VbIF5IYQQQhQfkoAJIURRnMqY/5VX+aFJuXpQpaPqlrhjlvXjEkIIIYRdkgRMCCEKKzkezuxW25XvkICBakkPsHu+OlYIIYSwgLCwMJ555hnz55UrV2b69Om3PcZgMLB06dIiX9tS5ylJJAETQojCit4B6angUwlKh955/xr3QJkqauHmvQutH58QQpRw586d48knn6Rq1aq4ubkRHBxM7969Wb16td6hAdC7d+88F1jeunUrBoOB3bt3F/i8O3fu5LHHHitqeNlMmTKFxo0b57j/7Nmz9OjRw6LXutW8efMoXbq0Va9hS5KACSFEYZnbz7cFg+HO+zs5Zc4F2zYT0tOtF1txsP59mNtLdZoUQogCOnXqFM2aNWPNmjW899577N+/n2XLltGpUyfGjRuX53EpKSk2i3HUqFGsWbOGyMjIHI/NmTOHxo0b07Rp0wKfNyAgAE9PT0uEeEdBQUG4ubnZ5FrFhSRgQghRWPmd/5VV48Hg6g2Xj8GJNdaJqzg4fxDWvgWRm+TrJIS90TRVRq3HrQBrKT7xxBMYDAZ27NjBgw8+SM2aNalXrx4TJkxg27bMJUEMBgMzZ86kT58+eHl58eabbwIwY8YMqlWrhqurK7Vq1eK7777Ldv4pU6YQEhKCm5sbFSpU4KmnnjI/9uWXX1KjRg3c3d0pV64cDz74YK4x3nvvvQQGBjJv3rxs9yckJLB48WJGjRrF5cuXGTRoEJUqVcLT05MGDRqwcOHtqyhuLUE8duwYHTp0wN3dnbp167Jy5cocx7z44ovUrFkTT09PqlatyquvvmpORufNm8fUqVPZu3cvBoMBg8FgjvnWEsT9+/fTuXNnPDw88Pf357HHHiMuLs78+MiRI+nbty8ffPAB5cuXx9/fn3HjxhUp8Y2KiqJPnz6UKlUKHx8fHnroIc6fP29+fO/evXTq1Alvb298fHxo1qwZu3btAiAyMpLevXtTpkwZvLy8qFevHn///XehY8kPo1XPLhxXYiykJkGpQL0jEcI+pdyEGPXHO9cFmPPi7gNNh6l29NtnQI3cS09KvLVvARkvtC4chrp9dA1HCJFFSgK8XUGfa790Bly97rjblStXWLZsGW+99RZeXjn3v7WcbfLkyUybNo2PP/4YZ2dnfv31V55++mmmT59O165d+fPPP3n44YepVKkSnTp14qeffuLjjz9m0aJF1KtXj3PnzrF3714Adu3axVNPPcV3331HmzZtuHLlChs3bsw1TqPRyPDhw5k3bx6vvfYahoxqih9//JHk5GSGDBlCQkICzZo148UXX8THx4e//vqLYcOGUbVqVVq1anXHr0V6ejoPPPAAZcuWZdu2bVy/fj3bfDETb29v5s2bR4UKFdi/fz+PPvoo3t7e/O9//2PAgAEcOHCAZcuWsWrVKgB8fX1znCMhIYHu3btz1113sXPnTi5cuMDo0aMZP358tiRz7dq1lC9fnrVr13L8+HEGDBhA48aNefTRR+/4fG6laRp9+/bFy8uL9evXk5qayhNPPMGAAQNYt24dAEOGDKFJkybMmDEDZ2dnwsPDcXFxAWDcuHEkJyezYcMGvLy8OHjwIKVKlSpwHAUhCZjIKTkBZoVB/CV4cjeUCtA7IiHsz+mdkJYM3uXBr2rBjm35GGybAcdXwcWjEFDTOjE6qph/Vbt+k4uH9ItFCOGQjh8/jqZp1K5dO1/7Dx48mEceeSTb5yNHjuSJJ54AMI+affDBB3Tq1ImoqCiCgoLo2rUrLi4uhISE0LJlS0CNxnh5eXHvvffi7e1NaGgoTZo0yfPajzzyCO+//z7r1q2jU6dOgCo/fOCBByhTpgxlypTh+eefN+//5JNPsmzZMn788cd8JWCrVq3i0KFDnDp1ikqVKgHw9ttv55i39corr5i3K1euzHPPPcfixYv53//+h4eHB6VKlcJoNBIUFJTntRYsWMDNmzeZP3++OfH9/PPP6d27N++++y7lypUDoEyZMnz++ec4OztTu3ZtevXqxerVqwuVgK1atYp9+/YRERFBcLBaj/O7776jXr167Ny5kxYtWhAVFcULL7xg/nmoUaOG+fioqCj69etHgwYNAKhatYD/0wtBEjCR05ZP4cpJtX1ybeYCskKITFnLD/Mz/ysrvypQqycc+Qu2z4R7P7J8fI5s9RvqY5nKcPUUXJAETAi74uKpRqL0unY+aBmlioZ8/n1u3rx5ts8PHTqUo4lF27Zt+eSTTwDo378/06dPp2rVqnTv3p2ePXvSu3dvjEYjd999N6GhoebHunfvzv3334+npycLFixgzJgx5nP+888/tG/fnjZt2jBnzhw6derEiRMn2LhxIytWrAAgLS2Nd955h8WLFxMTE0NSUhJJSUm5juzl5tChQ4SEhJiTL4DWrVvn2O+nn35i+vTpHD9+nLi4OFJTU/Hx8cnXNbJeq1GjRtlia9u2Lenp6Rw5csScgNWrVw9nZ2fzPuXLl2f//v0FulbWawYHB5uTL4C6detSunRpDh06RIsWLZgwYQKjR4/mu+++o2vXrvTv359q1aoB8NRTT/H444+zYsUKunbtSr9+/WjYsGGhYskvmQMmsouNgc2fZH5+cr1+sQhhz7I24CiMuzKacexdCDevWiam4iBio3rjx8kF+nyp7rt8HFKT9Y1LCJHJYFBlgHrc8plQ1ahRA4PBwKFD+XsDJ7dk5tbkTdM0833BwcEcOXKEL774Ag8PD5544gk6dOhASkoK3t7e7N69m4ULF1K+fHlee+01GjVqxLVr17jvvvsIDw8330yJ36hRo/j555+5fv06c+fOJTQ0lC5dugDw4Ycf8vHHH/O///2PNWvWEB4ezj333ENycv7+Lmq5zJu79blt27aNgQMH0qNHD/7880/27NnDyy+/nO9r5PY1ut01TeV/WR9LL2RjqryumfX+KVOm8N9//9GrVy/WrFlD3bp1+fXXXwEYPXo0J0+eZNiwYezfv5/mzZvz2WefFSqW/JIETGS3+nVV2+3prz6PWF+gCa9ClAipSaoEESC0APO/sqrcHsrVV79vu+dbLjZHpmmwJmP0q+lwCG0Dbj6q1f+VE/rGJoRwKH5+ftxzzz188cUXxMfnXHfx2rVrtz2+Tp06bNq0Kdt9W7ZsoU6dOubPPTw8uO+++/j0009Zt24dW7duNY/iGI1Gunbtynvvvce+ffs4deoUa9aswdvbm+rVq5tvHh4eADz00EM4Ozvzww8/8O233/Lwww+bk4eNGzfSp08fhg4dSqNGjahatSrHjh3L99eibt26REVFceZM5qjl1q1bs+2zefNmQkNDefnll2nevDk1atTI0ZnR1dWVtLS0O14rPDw829d88+bNODk5UbOmdcrtTc8vOjrafN/BgweJjY3N9v2qWbMmzz77LCtWrOCBBx5g7ty55seCg4MZO3Ysv/zyC8899xxff/21VWI1kQRMZDr9L+xbpLYfmq/egY6NhqsR+sYlhL2J+RdSE8ErEMrWuPP+uTEYMlvS7/ga0lItF5+jOrYCoreD0R06vKC+RgG11GNShiiEKKAvv/yStLQ0WrZsyc8//8yxY8c4dOgQn376aa4leFm98MILzJs3j5kzZ3Ls2DE++ugjfvnlF/NcrHnz5jF79mwOHDjAyZMn+e677/Dw8CA0NJQ///yTTz/9lPDwcCIjI5k/fz7p6enUqlUrz+uVKlWKAQMG8NJLL3HmzBlGjhxpfqx69eqsXLmSLVu2cOjQIcaMGcO5c+fy/XXo2rUrtWrVYvjw4ezdu5eNGzfy8ssvZ9unevXqREVFsWjRIk6cOMGnn35qHiEyqVy5MhEREYSHh3Pp0iWSkpJyXGvIkCG4u7szYsQIDhw4wNq1a3nyyScZNmyYufywsNLS0rKNHoaHh3Pw4EG6du1Kw4YNGTJkCLt372bHjh0MHz6cjh070rx5c27evMn48eNZt24dkZGRbN68mZ07d5qTs2eeeYbly5cTERHB7t27WbNmTbbEzRokAROKpsHySWq70SDV1a1SC/W5lCEKkZ15/lebgs//yqpBfzXaHBudvelESZSenjn61fIx8CmvtgMz/glePKxPXEIIh1WlShV2795Np06deO6556hfvz533303q1evZsaMGbc9tm/fvnzyySe8//771KtXj6+++oq5c+cSFhYGqC6KX3/9NW3btqVhw4asXr2aP/74A39/f0qXLs0vv/xC586dqVOnDjNnzmThwoXUq1fvttccNWoUV69epWvXroSEhJjvf/XVV2natCn33HMPYWFhBAUF0bdv33x/HZycnPj1119JSkqiZcuWjB49mrfeeivbPn369OHZZ59l/PjxNG7cmC1btvDqq69m26dfv350796dTp06ERAQkGsrfE9PT5YvX86VK1do0aIFDz74IF26dOHzzz/Pd7x5iYuLo0mTJtluPXv2NLfBL1OmDB06dKBr165UrVqVxYsXA+Ds7Mzly5cZPnw4NWvW5KGHHqJHjx5MnToVUInduHHjqFOnDt27d6dWrVp8+eWXRY73dgxaboWh4o6uX7+Or68vsbGxBZ6gaJcO/Aw/PaImtz75L/hUgHXvwLppUO9+6D9P7wiFsB/f3qfKc3t+AC0L3rEpmzVvwob3IaQ1PLLMMvE5ogO/wE8PqzXSntkHnn7q/q1fqjeH6twHA767/TmEEFaRmJhIREQEVapUwd3dXe9whNDN7X4XCpIbyAiYUOsZrZystts9q5IvgCod1ceIDerdaSGEagYRvUNtF2T9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7Nmzh+TkZCoqKnjuuecAmDNnDhs3biQlJeWiX3vy5Mk8//zz1fI+RERERESkbqo1PWBWq5UhQ4bw/PPP07x58wseZ7PZCAkJYdq0aSQmJjJ48GCefvpppk6dCkBmZiZjxozhww8/xMvr4qcRfeqpp8jPz7c/MjMzf/d7EhERERGRuqXW9IAVFhayfv16Nm3axKhRo4DKsGUYBmazmUWLFtG7d2/Cw8Px8PDA3d3dfm6rVq3IycmhvLycDRs2kJubS2Jion2/1Wpl2bJlvPHGG5SVlVU59yyLxYLFYqn5NyoiIiIiIlesWhPA/P39SUtLq7LtzTffZPHixcydO5fY2FgAevTowaxZs7DZbLi5VXbw7d69m/DwcDw9PenTp885zzNixAhatmzJuHHjzhu+REREREREqoNTA1hRURF79+61/56enk5qaipBQUFER0fz1FNPcfjwYWbOnImbmxvx8fFVzg8JCcHLy6vK9ocffpjXX3+dMWPGMHr0aPbs2cOkSZN49NFHAfDz8zvneXx9fWnQoME520VERERERKqTUwPY+vXr6dWrl/33sWPHAjBs2DDef/99srOzycjIuKTnjIqKYtGiRTz++OO0a9eORo0aMWbMGMaNG1ettYuIiIiIiFwqk2EYhrOLqI0KCgoICAggPz8ff39/Z5cjIiIiIiJOcinZoNbMgigiIiIiIlLbKYCJiIiIiIg4iAKYiIiIiIiIgyiAiYiIiIiIOEitWQfM1Zydu6SgoMDJlYiIiIiIiDOdzQQXM7+hAthlKiwsBCqnvRcRERERESksLCQgIOBXj9E09JfJZrORlZWFn58fJpPpks4tKCggKiqKzMxMTWHvYnRtXJuuj+vStXFtuj6uTdfHdenauDZXuj6GYVBYWEhERARubr9+l5d6wC6Tm5sbkZGRv+s5/P39nf6HRc5P18a16fq4Ll0b16br49p0fVyXro1rc5Xr81s9X2dpEg4REREREREHUQATERERERFxEAUwJ7BYLEyYMAGLxeLsUuQXdG1cm66P69K1cW26Pq5N18d16dq4ttp6fTQJh4iIiIiIiIOoB0xERERERMRBFMBEREREREQcRAFMRERERETEQRTAREREREREHEQBzMHefPNNYmNj8fLyIjExkeXLlzu7JAEmTpyIyWSq8ggLC3N2WXXWsmXLGDhwIBEREZhMJubP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MJCUlBQ+/fRTvv/++yoBa+rUqSQnJ/Pggw+SlpbGggULaNasWZXXeP7557nzzjvZsmULN9xwA0OHDiUvL8+h71NERBzLZBiG4ewiREREHGn48OF8+OGHeHl5Vdk+btw4nn32WUwmEyNHjmTq1Kn2fd26daNjx468+eabvP3224wbN47MzEx8fX0BWLhwIQMHDiQrK4vQ0FAaNWrEiBEjeOGFF85bg8lk4plnnuFvf/sbAMXFxfj5+bFw4ULdiyYicgXTPWAiIlIn9erVq0rAAggKCrL/nJSUVGVfUlISqampAOzYsYOEhAR7+ALo0aMHNpuNXbt2YTKZyMrKok+fPr9aQ7t27ew/+/r64ufnR25u7uW+JRERqQUUwEREpE7y9fU9Z0jgbzGZTAAYhmH/+XzHeHt7X9TzeXh4nHOuzWa7pJpERKR20T1gIiIi57FmzZpzfm/ZsiUArVu3JjU1leLiYvv+lStX4ubmRvPmzfHz86Nx48b88MMPDq1ZRERcn3rARESkTiorKyMnJ6fKNrPZTHBwMACffvopnTp1omfPnnz00UesW7eOd999F4ChQ4cyYcIEhg0bxsSJEzl69CijR4/m3nvvJTQ0FICJEycycuRIQkJCGDBgAIWFhaxcuZLRo0c79o2KiIhLUQATEZE66ZtvviE8PLzKthYtWrBz506gcobCOXPm8MgjjxAWFsZHH31E69atAfDx8eHbb79lzJgxdO7cGR8fHwYNGsSUKVPszzVs2DBKS0t59dVXeeKJJwgODub222933BsUERGXpFkQRUREfsFkMjFv3jxuueUWZ5ciIiJXGN0DJiIiIiIi4iAKYCIiIiIiIg6ie8BERER+QaPzRUSkpqgHTERERERExEEUwERERERERBxEAUxERERERMRBFMBEREREREQcRAFMRERERETEQRTAREREREREHEQBTERERERExEEUwERERERERBzk/wGwJ9gBS4Hi3wAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import os\n",
    "os.environ['KMP_DUPLICATE_LIB_OK']='True'\n",
    "\n",
    "# Calculate and print accuracies for training and cross-validation sets\n",
    "model.eval()\n",
    "with torch.no_grad():\n",
    "    # Training set accuracy\n",
    "    tr_correct = 0\n",
    "    tr_total = 0\n",
    "    for images, labels in trLoader:\n",
    "        outputs = model(images)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        _, true_labels = torch.max(labels, 1)\n",
    "        tr_total += labels.size(0)\n",
    "        tr_correct += (predicted == true_labels).sum().item()\n",
    "    \n",
    "    tr_accuracy = 100 * tr_correct / tr_total\n",
    "    \n",
    "    # Test set accuracy\n",
    "    cv_correct = 0\n",
    "    cv_total = 0\n",
    "    for images, labels in cvLoader:\n",
    "        outputs = model(images)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        _, true_labels = torch.max(labels, 1)\n",
    "        cv_total += labels.size(0)\n",
    "        cv_correct += (predicted == true_labels).sum().item()\n",
    "    \n",
    "    cv_accuracy = 100 * cv_correct / cv_total\n",
    "\n",
    "print(f'Accuracy on training set: {tr_accuracy:.2f}%')\n",
    "print(f'Accuracy on cross-validation set: {cv_accuracy:.2f}%')\n",
    "\n",
    "# Plot training and cross-validation losses\n",
    "plt.figure(figsize=(10, 5))\n",
    "plt.plot(range(1, num_epochs+1), train_losses, label='Training Loss')\n",
    "plt.plot(range(1, num_epochs+1), cv_losses, label='Cross-Validation Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Training and Cross-Validation Loss')\n",
    "plt.legend()\n",
    "plt.savefig('3.png', dpi=300) # Make figure clearer\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "22ac3673-1813-4259-9b5e-1dd73b50f109",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
